// 题目链接：https://www.luogu.com.cn/problem/P2036

#include <iostream>
#include <algorithm>
#include <cstdlib>

using namespace std;

const int N = 15;

int data[N][3]; // 保存食材的酸度和苦度
int n;
int s = 1, b = 0; // 保存酸度之积，苦度之和
int res = 1e9;    // 保存结果

// start 表示选到了第start种配料，x表示当前的酸度和苦度的最小绝对差
void DFS(int start, int x)
{
    // 如果调料全部选完了，更新res为较小的哪个值，然后返回
    if (start > n)
    {
        res = min(res, x);
        return;
    }

    // 依次添加第i种配料，如果加入后得到的酸度和苦度的绝对差更小，则更新x，然后继续选择下一种配料
    for (int i = start; i <= n; ++i)
    {
        s *= data[i][1];
        b += data[i][2];

        x = min(x, abs(s - b));

        DFS(i + 1, x);

        // 恢复现场
        s /= data[i][1];
        b -= data[i][2];
    }
}

int main()
{
    scanf("%d", &n);
    for (int i = 1; i <= n; ++i)
    {
        scanf("%d %d", &data[i][1], &data[i][2]);
    }

    DFS(1, 1e9);
    printf("%d", res);

    return 0;
}